package cn.bird.storm.validated.paramcheck.model.stringscope;

import cn.bird.storm.validated.paramcheck.CheckTrait;
import cn.bird.storm.validated.paramcheck.ParameterCheckBuilder;
import cn.hutool.core.collection.ListUtil;

import java.util.List;

public interface StringScopeTrait extends CheckTrait {
    /**
     * 字符串范围校验
     * @param message 不通过的字段名
     * @param value 需要检验的值
     */
    default ParameterCheckBuilder stringScope(String message, String value, List<String> scope) {
        return richCheckModelMap("STRING_SCOPE_CHECK",
                StringScopeCheckBean.builder()
                        .scope(scope)
                        .msg(message)
                        .value(value)
                        .build(),
                StringScopeCheckModel::new
        );
    }

    /**
     * 字符串范围校验
     *
     * @param message 不通过的字段名
     * @param value   需要检验的值
     */
    default ParameterCheckBuilder stringScope(String message, String value, String... scope) {
        return stringScope(message, value, ListUtil.toList(scope));
    }
}
